Міністерство освіти і науки України
Хмельницький національний університет
Кафедра програмної інженерії
КУРСОВА РОБОТА
ПОБУДОВА ЕМПІРИЧНОЇ ФОРМУЛИ
МЕТОДОМ НАЙМЕНШИХ КВАДРАТІВ
КРІМ.10154.00.00.00
Студент групи ІМс-10-3 ________________
Підпис, дата
Керівник ________________ Корнєєв О.М
канд. техн. наук, доцент Підпис, дата
2010
Зміст
Постановка завдання…………………………………………………………………….3
Розрахунки та графіки, виконані в середовищі MS Excel……………………………..4
Програма мовою C#...........................................................................................................8
Висновки……………………………………………………………….................................10
Література……………………………………………………………………………………11
Завдання
В результаті експериментальних досліджень залежності величини y від величини x отримано певну сукупність даних (табл. 1.1)
Таблиця 1.1
xi
1.5
1.64
3.28
6.56
9.84
13.1
16.4
21
23.2
26.1
29.7
33.9
38.4
yi
3.19
2.54
1.17
1.14
0.69
0.4
0.23
0.13
0.07
0.04
0.01
-0.02
-0.07
Знайти емпіричну формулу для вказаної залежності та побудувати її графік.
2. Розрахунки та графіки, виконані в середовищі MS Excel
2.1. У середовищі MS Excel побудували графік заданої функції (рис. 2.1).
Рисунок 2.1 – Графік емпіричної функції
2.2. Порівнявши отриманий графік з графіками функцій, описаними в п. 1.2 [1], бачимо, що показникова функція може бути апроксимуючою. Для знаходження її параметрів a та b потрібно розв’язати систему нормальних рівнянь (1) та використати формули (2).
(1)
(2)
2.3. Виконали необхідні розрахунки в середовищі MS Excel.
Таблиця Excel з результатами розрахунків (методом Крамера) показана на рис. 2.2.
Рисунок 2.2 – Таблиця Excel з результатами розрахунків (методом Крамера)
Рисунок 2.3 – Друга апроксимуюча функція
На основі розрахунків отримуємо емпіричну формулу У=0,017271*0,10396*Х, для якої значення суми квадратів відхилень дорівнює -19,4716.
Графіки заданої та апроксимуючої функцій, виконані засобами MS Excel, подані на рис. 2.4.
Рисунок 2.4 – Графіки заданої та апроксимуючої функції
Рисунок 2.5 – Графіки функцій
3. Програма мовою C# з відповідними поясненнями (коментарями)
Програма мовою C# має наступний вигляд:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Andrey
{
class Program
{
static void Main(string[] args)
{
//Початок програми
//Описуємо константи
const int n = 13;
//Описуємо змінні
double s1 = 0;int i;
double s2 = 0, s3 = 0, s4 = 0, a, b;
//Описуємо масиви
double[] x = { 1.5,1.64,3.28,6.56,9.84,13.1,16.4,21,23.2,26.1,29.7,33.9,38.4};//Описання масиву значень x
double[] y = { 3.19,2.54,1.17,1.14,0.69,0.4,0.23,0.13,0.07,0.04,0.01,-0.02,-0.07};//Описання масиву значень y
//Описання масива значень у1 апроксимуючої функції
double[] y1;
y1 = new double[n];
double s = 0;
//розрахунок допоміжних коефіцієнтів дл скадання основного рівняння
{
for (i = 0; i < n; i++)
//розрахунов коефіцієнтів системи рівнянь з якої будуть визначатися значення а і в
{
s1 = s1 + x[i];
s2 = s2 + x[i] * x[i];
s3 = s3 + y[i];
s4 = s4 + x[i] * y[i];
}
}
a = (s2 * s3 - s1 * s4) / (n * s2 - s1 * s1);//розрахунок коефіцієнтів а по методу Крамера
b = (n * s4 - s1 * s3) / (n * s2 - s1 * s1);//розрахунок коефіцієнтів в по методу Крамера
//вивід результатів
Console.WriteLine("Значення коефіцієнтів");
Console.WriteLine();//перехід на нову стрічку
Console.WriteLine("a= {0}", a);//вивід значення коефіцієнта а
Console.WriteLine("b={0}", b);//вивід значення коефіцієн...